package com.ming.liteflow.core.graph;

import com.ming.liteflow.core.el.prop.*;
import com.ming.liteflow.core.node.CmpScriptUtil;
import com.ming.liteflow.core.node.NodeInfo;
import com.ming.liteflow.core.node.NodeInfoWrapper;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class Node implements Serializable {

    private String id;
    private String type;
    private NodeInfoWrapper properties;
    private String text;
    List<String> children;

//    public static Node getNode(String componentId){
//        Node node = new Node();
//        NodeProperties prop = new NodeProperties();
//        prop.setComponentId(componentId);
//        node.setProperties(prop);
//        return node;
//    }
//
//    public static Node getNodeFor(String componentId){
//        Node node = new Node();
//        NodeProperties prop = new NodeProperties();
//        prop.setComponentId(componentId);
//
//        ForProperties properties = new ForProperties();
//        properties.setId("id");
//        properties.setLoopNumber(5);
//        properties.setTag("tag1");
//        properties.setParallel(true);
//        properties.setDoOpt("doCmp");
//        properties.setBreakOpt("breakCmp");
//        prop.setForProperties(properties);
//        node.setProperties(prop);
//        return node;
//    }
//
//    public static Node getNodeWhile(String componentId){
//        Node node = new Node();
//        NodeProperties prop = new NodeProperties();
//        prop.setComponentId(componentId);
//
//        WhileProperties properties = new WhileProperties();
//        properties.setId("id");
//        properties.setTag("tag1");
//        properties.setParallel(true);
//        properties.setDoOpt("doCmp");
//        properties.setBreakOpt("breakCmp");
//        prop.setWhileProperties(properties);
//        node.setProperties(prop);
//        return node;
//    }
//
//    public static Node getNodeIterator(String componentId){
//        Node node = new Node();
//        NodeProperties prop = new NodeProperties();
//        prop.setComponentId(componentId);
//
//        IteratorProperties properties = new IteratorProperties();
//        properties.setId("id");
//        properties.setTag("tag1");
//        properties.setParallel(true);
//        properties.setDoOpt("doCmp");
//        prop.setIteratorProperties(properties);
//        node.setProperties(prop);
//        return node;
//    }
//
//    public static Node getNodeIf(String componentId){
//        Node node = new Node();
//        NodeProperties prop = new NodeProperties();
//        prop.setComponentId(componentId);
//
//        //CmpScriptUtil.createIfNode(componentId);
//
//        IfProperties properties = new IfProperties();
//        properties.setId("id");
//        properties.setTag("tag1");
//        prop.setIfProperties(properties);
//        node.setProperties(prop);
//        return node;
//    }
//
//    public static Node getNodeSwitch(String componentId){
//        Node node = new Node();
//        NodeProperties prop = new NodeProperties();
//        prop.setComponentId(componentId);
//
//        SwitchProperties properties = new SwitchProperties();
//        properties.setId("id");
//        properties.setTag("tag1");
//        properties.setTo(new Object[]{"toCmp1","toCmp1"});
//        properties.setDefaultOpt("defaultCmp");
//        prop.setSwitchProperties(properties);
//        node.setProperties(prop);
//        return node;
//    }
}
